package com.winning.pmph.entity;

import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import javax.persistence.Table;
import java.util.List;

/**
 * 入库术语表
 *
 * @author 刘亚飞
 * @date 2021-03-30
 */
@Data
@Table(name = "term")
public class Term extends BaseEntity {

    private static final long serialVersionUID = 2656498461139571081L;

    /**
     * 未对比
     */
    public static final Integer STATUS_NO_COMPARE = 0;
    /**
     * 有冲突
     */
    public static final Integer STATUS_CONFLICT = 1;
    /**
     * 已入中间术语库
     */
    public static final Integer STATUS_ENTER_BETWEEN = 2;

    /**
     * 本组术语冲突
     */
    public static final Integer STATUS_GROUP_CONFLICT = 4;
    /**
     * 逻辑删除  未删除
     */
    public static final Integer DELETED_NO = 0;
    /**
     * 逻辑删除  已删除
     */
    public static final Integer DELETED_YES = 1;


    /**
     * ID
     */
    @TableId
    private String id;

    /**
     * 对应图书ID
     */
    private String termBookMetadataId;

    /**
     * 对应xml文件的分类
     */
    private String xmlClassify;

    /**
     * 编辑整理后的分类
     */
    private String classify;

    /**
     * 概念ID，标识同一组术语
     */
    private String conceptId;

    /**
     * 原始组ID
     */
    private String originalConceptId;

    /**
     * 同一组冲突术语
     */
    private String conflictConceptId;

    /**
     * 名称
     */
    private String name;

    /**
     * 正名对应的code
     */
    private String code;

    /**
     * 正名对应的拼音
     */
    private String pinyin;

    /**
     * 0：正名  1：正名1  2：正名2  3：又称  4：曾称  5：旧称
     */
    private Integer type;

    /**
     * 英文名称
     */
    private String englishName;

    /**
     * 英文缩写
     */
    private String englishAbbr;

    /**
     * 法文名称
     */
    private String frenchName;

    /**
     * 俄文名称
     */
    private String russianName;

    /**
     * 德文名称
     */
    private String germanName;

    /**
     * 日文名称
     */
    private String japaneseName;

    /**
     * 释义
     */
    private JSONArray explanation;

    /**
     * 0 未对比  1 有冲突 2 已入标准库
     */
    private Integer status;

    /**
     * 0 未删除  1 逻辑删除
     */
    private Integer deleted;

    @TableField(exist = false)
    private TermStandard termStandard;

    @TableField(exist = false)
    private List<Term> termList;

    @TableField(exist = false)
    private JSONArray explainList;

    @TableField(exist = false)
    private String queryType;

    @TableField(exist = false)
    private String typeName;

    @TableField(exist = false)
    private int sameCount;

    @TableField(exist = false)
    private int sortNo;

    @TableField(exist = false)
    private int totalNum = 0;

    @TableField(exist = false)
    private String nameSource;

    /**
     * 待推送的术语ID
     */
    @TableField(exist = false)
    private String syncConceptIds;

    /**
     * 推送平台
     */
    @TableField(exist = false)
    private String selectedPlatform;

    /**
     * 推送状态
     */
    @TableField(exist = false)
    private Integer syncStatus;

    @TableField(exist = false)
    private String operatedTime;
}